#ifndef GLWIDGET_H
#define GLWIDGET_H

#include <QWidget>
#include <QOpenGLWidget>
#include <QOpenGLFunctions>
#include "sky_box_shader_program.h"
#include "sky_box_drawer.h"

class GLWidget : public QOpenGLWidget, protected QOpenGLFunctions {
        Q_OBJECT

    public:
        GLWidget(QWidget *parent = nullptr);
        ~GLWidget();

    protected:
        void initializeGL() override;
        void resizeGL(int w, int h) override;
        void paintGL() override;

    private:
        SkyBoxShaderProgram *m_skyBoxProgram = nullptr;
        SkyBox *m_skyBox = nullptr;
        SkyBoxDrawer *m_skyBoxDrawer = nullptr;
};
#endif // GLWIDGET_H
